package maintown

import (
	"gitee.com/yysama/Kindling_civilization/core/assetloader"
	"gitee.com/yysama/Kindling_civilization/core/game"
	"gitee.com/yysama/Kindling_civilization/core/sprites"
	"gitee.com/yysama/Kindling_civilization/mod/hero"
	"gitee.com/yysama/Kindling_civilization/mod/pet"
	"github.com/hajimehoshi/ebiten/v2"
)

type scence_maintown struct {
	width   int
	height  int
	bg      *sprites.Sprite   // 背景
	doors   []*sprites.Sprite // 各个大门
	bonfire *sprites.Sprite   // 篝火
	me      *hero.Mod_Hero    // 英雄
	pets    []*pet.Mod_Pet    // 宠物
}

func New() *scence_maintown {
	wx, wy := game.Instance(nil).Size()
	Node := sprites.NewByWH(wx, wy, &ebiten.DrawImageOptions{})

	gem := ebiten.GeoM{}
	bmImg := assetloader.NewImageFromFile("../asset/images/loading/bg.png")

	w, h := bmImg.Size()
	gem.Translate(float64((wx-w)/2), float64((wy-h)/2))
	child := sprites.NewByImg(bmImg, &ebiten.DrawImageOptions{GeoM: gem})
	Node.AddChild(child)

	return &scence_maintown{
		width:  wx,
		height: wy,
		bg:     Node,
	}
}

func (this *scence_maintown) Draw(screen *ebiten.Image) {
	// 背景
	this.bg.Draw(screen)
	// 各个大门
	for _, door := range this.doors {
		door.Draw(screen)
	}
	// // 中间一个篝火
	//this.bonfire.Draw(screen)
	// 我
	// this.me.Draw(screen)
	// // 我的宠物
	// for _, pet := range this.pets {
	// 	pet.Draw(screen)
	// }

	return
}

func (this *scence_maintown) Update() error {
	// 背景
	this.bg.Update()
	// 各个大门
	for _, door := range this.doors {
		door.Update()
	}
	// // 中间一个篝火
	//this.bonfire.Update()
	// 我
	// this.me.Update()
	// // 我的宠物
	// for _, pet := range this.pets {
	// 	pet.Update()
	// }

	return nil
}

func (this *scence_maintown) Layout(outsideWidth, outsideHeight int) (int, int) {
	return this.width, this.height
}
